package mieApp.FISPointsPicker;

import java.text.DecimalFormat;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;


public class FISPointPickerActivity extends Activity {
    /** Called when the activity is first created. */
	
	final int sl = 610;
	final int gs = 870;
	final int sg = 1060;
	final int dh = 1330;
	final int sc = 1130;
	double punti;
    double puntiSec;
    DecimalFormat df;
    Spinner spinner;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        df = new DecimalFormat();
        df.setMaximumFractionDigits(2);
        df.setMinimumFractionDigits(2);
        
        spinner = (Spinner) findViewById(R.id.spinner1);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.disciplina_array, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

        
        Button bottone = (Button) findViewById(R.id.button1);
        bottone.setOnClickListener(new View.OnClickListener() {
			
			public void onClick(View v) {
				double tempo0 = getT0();
				double tempoX = getTX();
				
				int fattore = 0;
				int i = spinner.getSelectedItemPosition();
				if (i == 0)
					fattore = sl;
				else if (i == 1)
					fattore = gs;
				else if (i == 2)
					fattore = sg;
				else if (i == 3)
					fattore = dh;
				else if (i == 4)
					fattore = sc;
				
				if(tempoX >= tempo0) {
					calcolaPunti(tempo0, tempoX, fattore);
					calcolaPuntiSec(tempo0, fattore);
					
					TextView tv = (TextView) findViewById(R.id.textView3);
					tv.setText("Punti :  " + df.format(punti));
					
					tv = (TextView) findViewById(R.id.textView4);
					tv.setText("Punti al secondo :  " + df.format(puntiSec));
				}
				else {
					TextView tv = (TextView) findViewById(R.id.textView3);
					tv.setText("Il tempo del primo concorrente dev'essere minore di quello in esame!");
					tv = (TextView) findViewById(R.id.textView4);
					tv.setText("");
				}
			}
		});
    }
    
    public void calcolaPunti(Double tempo0, Double tempoX, int fattore) {
    	punti = fattore * tempoX / tempo0;
    	punti = punti - fattore;
    }
    public void calcolaPuntiSec(Double tempo0, int fattore) {
    	puntiSec = fattore * (tempo0 + 1) / tempo0;
    	puntiSec = puntiSec - fattore;
    }
    
    public double getT0() {
    	double t = 0;
    	
    	//minuti
    	NumberPickerMin npm = (NumberPickerMin) findViewById(R.id.Picker1);
    	t = npm.getValue() * 60;
    	
    	//secondi
    	NumberPickerSec nps = (NumberPickerSec) findViewById(R.id.Picker2);
    	t = t + nps.getValue();
    	
    	//centesimi
    	NumberPickerCent npc = (NumberPickerCent) findViewById(R.id.Picker3);
    	t = t + npc.getValue() * 0.01;
		return t;
    }
    public double getTX() {
    	double t = 0;
    	
    	//minuti
    	NumberPickerMin npm = (NumberPickerMin) findViewById(R.id.Picker4);
    	t = npm.getValue() * 60;
    	
    	//secondi
    	NumberPickerSec nps = (NumberPickerSec) findViewById(R.id.Picker5);
    	t = t + nps.getValue();
    	
    	//centesimi
    	NumberPickerCent npc = (NumberPickerCent) findViewById(R.id.Picker6);
    	t = t + npc.getValue() * 0.01;
		return t;
    }
}